1 using ProceduralToolkit.Examples.UI;
2 using
UnityEngine;
3
4 namespace
ProceduralToolkit.Examples
5 {
6     
public class BreakoutConfigurator : ConfiguratorBase
7     {
8         
public RectTransform leftPanel;
9         
[Space]
10         
public Breakout.Config config = new Breakout.Config();
11
12         
private Breakout breakout;
13
14         
private void Awake()
15         {
16             breakout =
new Breakout();
17             Generate();
18             SetupSkyboxAndPalette();
19
20             InstantiateControl<TextControl>(leftPanel).Initialize(
"Use A/D or Left/Right to move");
21
22             InstantiateControl<SliderControl>(leftPanel)
23                 .Initialize(
"Wall width", 1, 20, config.wallWidth, value =>
24                 {
25                     config.wallWidth =
value;
26                     Generate();
27                 });
28
29             InstantiateControl<SliderControl>(leftPanel)
30                 .Initialize(
"Wall height", 1, 20, config.wallHeight, value =>
31                 {
32                     config.wallHeight =
value;
33                     Generate();
34                 });
35
36             InstantiateControl<SliderControl>(leftPanel)
37                 .Initialize(
"Wall height offset", 1, 10, config.wallHeightOffset, value =>
38                 {
39                     config.wallHeightOffset =
value;
40                     Generate();
41                 });
42
43             InstantiateControl<SliderControl>(leftPanel)
44                 .Initialize(
"Paddle width", 1, 10, config.paddleWidth, value =>
45                 {
46                     config.paddleWidth =
value;
47                     Generate();
48                 });
49
50             InstantiateControl<SliderControl>(leftPanel)
51                 .Initialize(
"Ball size", 0.5f, 3f, config.ballSize, value =>
52                 {
53                     config.ballSize =
value;
54                     Generate();
55                 });
56
57             InstantiateControl<SliderControl>(leftPanel)
58                 .Initialize(
"Ball velocity", 1, 20, config.ballVelocityMagnitude, value =>
59                 {
60                     config.ballVelocityMagnitude =
value;
61                     Generate();
62                 });
63
64             InstantiateControl<ButtonControl>(leftPanel).Initialize(
"Generate", Generate);
65         }
66
67         
private void Update()
68         {
69             breakout.Update();
70
71             UpdateSkybox();
72         }
73
74         
private void Generate()
75         {
76             GeneratePalette();
77
78             config.gradient = ColorE.Gradient(GetMainColorHSV(), GetSecondaryColorHSV());
79
80             breakout.Generate(config);
81         }
82     }
83 }


Gõ tìm kiếm nhanh...